package cn.fl.spl.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.cmm.base.framework.utils.DateUtils;
import cn.fl.spl.vo.SplVisitRecVO;
import fl.spl.facade.spl.dto.SplVisitRecDTO;

/**
 * @Description: 供应商拜访记录 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据
 * @Description: VO转换数据变成DTO传递到服务端
 * @Description: VO不能在服务端出现
 */
public class SplVisitRecVOTransform {

	/**
	 * DTO 转 VO
	 *
	 * @param dto
	 *            SplVisitRecDTO
	 * @return SplVisitRecVO
	 */
	public static SplVisitRecVO toVO(SplVisitRecDTO dto) {
		SplVisitRecVO vo = null;
		if (dto != null) {
			vo = new SplVisitRecVO();
			vo.setId(dto.getId());
			vo.setSplId(dto.getSplId());// 供应商ID
			vo.setSplNm(dto.getSplNm());// 供应商名称
			vo.setConTypCd(dto.getConTypCd());// 联系人类型
			vo.setConUsrNm(dto.getConUsrNm());// 联系人名称
			vo.setConUsrId(dto.getConUsrId());// 联系人ID
			vo.setVisitPurpCd(dto.getVisitPurpCd());// 拜访目的
			vo.setVisitDetail(dto.getVisitDetail());// 拜访详情
			vo.setVisitPositAddr(dto.getVisitPositAddr());// 拜访地址(APP定位)
			vo.setPositLongitude(dto.getPositLongitude());// 位置经度
			vo.setPositLatitude(dto.getPositLatitude());// 位置纬度
			vo.setCurYear(dto.getCurYear());// 年份
			vo.setCurMonth(dto.getCurMonth());// CUR_MONTH
			vo.setCurDay(dto.getCurDay());// 日
			vo.setIsDel(dto.getIsDel());// 是否删除
			vo.setIsValid(dto.getIsValid());// 是否有效
			vo.setCrtUsrNm(dto.getCrtUsrNm());// 创建人名称
			vo.setMdfUsrNm(dto.getMdfUsrNm());// 修改人名称

			vo.setCrtTm(dto.getCrtTm());// 创建时间
			vo.setCrtTmStr(DateUtils.formatDateToString(dto.getCrtTm(), DateUtils.YYYY_MM_DDHHMM));// 创建时间转为字符串时间
			vo.setCrtUsrId(dto.getCrtUsrId());// 创建人
			vo.setMdfTm(dto.getMdfTm());// 修改时间
			vo.setMdfUsrId(dto.getMdfUsrId());// 修改人
			vo.setPositId(dto.getPositId());// 位置ID
			vo.setBuOrgCd(dto.getBuOrgCd());// 创建人部门 代码
			vo.setCurOrgCd(dto.getCurOrgCd());// 创建人组织机构代码
			vo.setIsSuccess(dto.getIsSuccess());// 是否成功

			vo.setOffsetDistance(dto.getOffsetDistance());//偏移距离(米)
			vo.setCurWeek(dto.getCurWeek());//周
			vo.setVisitRecId(dto.getVisitRecId());//负责人拜访记录ID
			vo.setRoleTypCd(dto.getRoleTypCd());//拜访角色类型
			vo.setDataTypCd(dto.getDataTypCd());//数据类型（“VISIT”:拜访,"CHECK":签到）
			vo.setBusTypCd(dto.getBusTypCd());//业务标识("SPL_BSC_INFO":经销商，“PRJ_LNK_COMP”:挂靠公司，“MFR_BSC_INFO”:厂商，“CST_BSC_INFO”:客户)

		}
		return vo;
	}

	/**
	 * VO 转 DTO
	 *
	 * @param vo
	 *            SplVisitRecVO
	 * @return SplVisitRecDTO
	 */
	public static SplVisitRecDTO toDTO(SplVisitRecVO vo) {
		SplVisitRecDTO dto = null;
		if (vo != null) {
			dto = new SplVisitRecDTO();
			dto.setId(vo.getId());
			dto.setSplId(vo.getSplId());// 供应商ID
			dto.setSplNm(vo.getSplNm());// 供应商名称
			dto.setConTypCd(vo.getConTypCd());// 联系人类型
			dto.setConUsrNm(vo.getConUsrNm());// 联系人名称
			dto.setConUsrId(vo.getConUsrId());// 联系人ID
			dto.setVisitPurpCd(vo.getVisitPurpCd());// 拜访目的
			dto.setVisitDetail(vo.getVisitDetail());// 拜访详情
			dto.setVisitPositAddr(vo.getVisitPositAddr());// 拜访地址(APP定位)
			dto.setPositLongitude(vo.getPositLongitude());// 位置经度
			dto.setPositLatitude(vo.getPositLatitude());// 位置纬度
			dto.setCurYear(vo.getCurYear());// 年份
			dto.setCurMonth(vo.getCurMonth());// CUR_MONTH
			dto.setCurDay(vo.getCurDay());// 日
			dto.setIsDel(vo.getIsDel());// 是否删除
			dto.setIsValid(vo.getIsValid());// 是否有效
			dto.setCrtUsrNm(vo.getCrtUsrNm());// 创建人名称
			dto.setMdfUsrNm(vo.getMdfUsrNm());// 修改人名称

			dto.setCrtTm(vo.getCrtTm());// 创建时间
			dto.setCrtUsrId(vo.getCrtUsrId());// 创建人
			dto.setMdfTm(vo.getMdfTm());// 修改时间
			dto.setMdfUsrId(vo.getMdfUsrId());// 修改人
			dto.setPositId(vo.getPositId());// 位置ID
			dto.setBuOrgCd(vo.getBuOrgCd());// 创建人部门 代码
			dto.setCurOrgCd(vo.getCurOrgCd());// 创建人组织机构代码
			dto.setIsSuccess(vo.getIsSuccess());// 是否成功

			dto.setOffsetDistance(vo.getOffsetDistance());//偏移距离(米)
			dto.setCurWeek(vo.getCurWeek());//周
			dto.setVisitRecId(vo.getVisitRecId());//负责人拜访记录ID
			dto.setRoleTypCd(vo.getRoleTypCd());//拜访角色类型
			dto.setDataTypCd(vo.getDataTypCd());//数据类型（“VISIT”:拜访,"CHECK":签到）
			dto.setBusTypCd(vo.getBusTypCd());//业务标识("SPL_BSC_INFO":经销商，“PRJ_LNK_COMP”:挂靠公司，“MFR_BSC_INFO”:厂商，“CST_BSC_INFO”:客户)

		}
		return dto;
	}

	/**
	 * DTO集合 转 VO集合
	 *
	 * @param list
	 *    List<SplVisitRecDTO>
	 * @return List<SplVisitRecVO>
	 */
	public static List<SplVisitRecVO> toVOList(List<SplVisitRecDTO> list) {
		List<SplVisitRecVO> voList = new ArrayList<SplVisitRecVO>();
		if (CollectionUtils.isNotEmpty(list)) {
			for (SplVisitRecDTO dto : list) {
				voList.add(toVO(dto));
			}
		}
		return voList;
	}

	/**
	 * VO集合 转 DTO集合
	 *
	 * @param list
	 *            List<SplVisitRecVO>
	 * @return List<SplVisitRecDTO>
	 */
	public static List<SplVisitRecDTO> toDTOList(List<SplVisitRecVO> list) {
		List<SplVisitRecDTO> dtoList = new ArrayList<SplVisitRecDTO>();
		if (CollectionUtils.isNotEmpty(list)) {
			for (SplVisitRecVO vo : list) {
				dtoList.add(toDTO(vo));
			}
		}
		return dtoList;
	}
}